package de.htw.ejb.model.listener;

import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
import javax.persistence.PostPersist;
import javax.persistence.PostRemove;
import javax.persistence.PostUpdate;
import javax.persistence.PrePersist;
import javax.persistence.PreRemove;
import javax.persistence.PreUpdate;

import org.apache.log4j.Logger;

import de.htw.ejb.model.Kunde;

/**
 * Diese Klasse implementiert einen Logger fuer die Entity Kunde.
 * 
 * @author Thomas Schoenfeld
 * @version 20130318-01
 */
public class KundeMonitor
{
	Logger	logger	= Logger.getLogger( KundeMonitor.class );
	
	@PostConstruct
	public void neuerKundeErzeugt( Kunde kunde )
	{
		logger.info( kunde.getKundennummer() + " " + kunde.getName()
				+ " wurde erzeugt" );
	}
	
	@PreDestroy
	public void neuerKundeZerstoert( Kunde kunde )
	{
		logger.info( kunde.getKundennummer() + " " + kunde.getName()
				+ " wird zerstoert" );
	}
	
	@PrePersist
	public void neuerKundeRegistriert( Kunde kunde )
	{
		logger.info( kunde.getKundennummer() + " " + kunde.getName()
				+ " wurde registriert" );
	}
	
	@PostPersist
	public void neuerKundeGespeichert( Kunde kunde )
	{
		logger.info( kunde.getKundennummer() + " " + kunde.getName()
				+ " wurde gespeichert" );
	}
	
	@PreUpdate
	public void neuerKundeAenderung( Kunde kunde )
	{
		logger.info( kunde.getKundennummer() + " " + kunde.getName()
				+ " wird geaendert" );
	}
	
	@PostUpdate
	public void neuerKundeAenderungErfolgt( Kunde kunde )
	{
		logger.info( kunde.getKundennummer() + " " + kunde.getName()
				+ " wurde geaendert" );
	}
	
	@PreRemove
	public void neuerKundeZumLoeschenRegistiert( Kunde kunde )
	{
		logger.info( kunde.getKundennummer() + " " + kunde.getName()
				+ " wurde zum Loeschen registriert" );
	}
	
	@PostRemove
	public void neuerKundeGeloescht( Kunde kunde )
	{
		logger.info( kunde.getKundennummer() + " " + kunde.getName()
				+ " wurde geloescht" );
	}
}
